package io;

import java.io.*;
import java.nio.charset.StandardCharsets;

/**
 * 缓冲输出流:BufferedWriter和BufferedRead
 * 缓冲字符流内部默认有一个8192长的char数组,可以保证读写文本数据的效率
 *
 * PrintWriter是具有自动行刷新的缓冲输出流-----常用
 * 实际上它的缓冲操作还是依靠BufferedWriter实现的，它的内部总是连接着BufferedWriter
 *
 */
public class PwDemo {
    public static void main(String[] args) throws FileNotFoundException {
       /* PrintWriter pw =new PrintWriter("pw.txt");//底层有 所以不用文件流
        pw.println("写信告诉我今天海是什么颜色 夜夜陪着你的海心情又如何");
        pw.println("灰色是不想说 蓝色是犹豫");
        System.out.println("写出完毕");
        pw.close();*/

        //文件流:低级流/节点流，作用:连接程序和文件的管道，负责将字节写入到文件中
        FileOutputStream fos =new FileOutputStream("pw2.txt");
        //转换流:高级流/字符流，作用:连接字节与字符流，负责将写出的字符转换为字节
        OutputStreamWriter osw =new OutputStreamWriter(fos, StandardCharsets.UTF_8);
        //缓冲流:高级流/字符流,作用:内部默认维护8192长的char数组，总是以快写操作保证写出字符的效率
        BufferedWriter bw =new BufferedWriter(osw);
        //PrintWriter:高级流/字符流,作用:按行写出字符串(println),自动行刷新
        PrintWriter pw =new PrintWriter(bw);
        pw.println("写信告诉我今天海是什么颜色 夜夜陪着你的海心情又如何");
        pw.println("灰色是不想说 蓝色是犹豫");
        System.out.println("写出完毕");
        pw.close();


    }
}
